package cn.smile.business.core;

import cn.smile.bean.dto.core.ShareUserDTO;
import cn.smile.bean.entity.core.ShareRelation;
import cn.smile.bean.form.core.share.QueryShareForm;
import cn.smile.bean.form.core.share.UpdateBindDicForm;
import cn.smile.commons.domain.IBaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

public interface IShareRelationService extends IBaseService<ShareRelation> {

    /**
     * 生成共享码
     *
     * @return 共享绑定码
     */
    String getShareCode();

    /**
     * 绑定共享关系
     *
     * @param shareCode 共享绑定码
     * @return 绑定结果
     */
    Boolean bindShare(String shareCode);

    /**
     * 分页查询共享用户
     *
     * @param form 查询条件
     * @return 查询结果
     */
    IPage<ShareUserDTO> getSharePage(QueryShareForm form);

    /**
     * 列表查询共享用户
     *
     * @param form 查询条件
     * @return 查询结果
     */
    List<ShareUserDTO> getShareList(QueryShareForm form);

    /**
     * 删除绑定关系
     *
     * @param shareUserId 共享用户ID
     * @return 删除结果
     */
    Boolean delBind(String shareUserId);

    /**
     * 更新关系字典
     *
     * @param form 更新参数
     * @return 更新结果
     */
    Boolean updateRelationDic(UpdateBindDicForm form);
}
